#ifndef DIALOGADDITEM_H
#define DIALOGADDITEM_H

#include <QGroupBox>
#include <QLineEdit>
#include <QComboBox>
#include "components/DialogComponents.h"

#define  TREE_DATA_STATUS_EMPTY     (10)

static QMap<QString, QIcon>  gmapJSONTypeIcon;      // 数据类型对应的图标

// 新增对象输入框
class DialogAddItem : public BaseDialog
{
    Q_OBJECT
public:
    // 构造函数
    DialogAddItem(QWidget *parent = nullptr);
    // 析构资源
    virtual ~DialogAddItem() {}
    // 设置上层加载状态，每次启用时更新
    void setTreeStatus(const uint iStatus);
    // 根据类型获取图标
    QIcon getIconByJsonType(const QString& strType);
    
protected:
    // [重写]完成按钮功能
    bool funcDone() override;
    // [重写]完成取消功能
    void funcCancel() override;

signals:
    // 文本发送信号
    void sendMsg(uint, QString&, QString&);

private slots:
    // 类型选择变动
    void currentIndexChanged(int idx);

private:
    QGroupBox*      m_pGroupKey;
    QGroupBox*      m_pGroupValue;
    QComboBox*      m_pItemEmptyType;
    QComboBox*      m_pItemType;
    QComboBox*      m_pItemBool;
    QLineEdit*      m_pItemKey;
    QLineEdit*      m_pItemValue;
    uint            m_iTreeStatus;
};

#endif